筆者這一、兩個月才開始寫LeetCode,常需要花很久的時間才寫得出來,如果寫不出來,也會去參考別人的解題思路與方法,所以想透過此次鐵人賽紀錄自己寫LeetCode的過程,並督促一下自己。因此,也鼓勵如果有想要寫LeetCode的朋友們,可以註冊LeetCode,一起刷題、交流唷!
這30天挑戰的題目來源是在LeetCode中Top Interview Questions的Easy等級,連結為https://leetcode.com/problem-list/top-interview-questions/?page=1&difficulty=EASY
題目給一個整數的陣列nums和一個整數target,當陣列nums中兩個數字相加等於target時,則回傳兩個數字在陣列nums的位置。
你可能會假設每個輸入都只有一個解法,並且你可能不會重複使用相同的元素。
你可以按任何順序來回傳答案。
先從陣列中選取一個數字,再去與後面的數字各別相加,如果相加等於target,就回傳兩個數字的位置,如果相加不等於target,就依序選取陣列中的數字,再去與後面的數字各別相加。
因此,使用兩個for迴圈跑陣列nums的數字,從 i = 0 開始跑第一個迴圈,再從 j = i + 1 開始跑第二個迴圈,當符合兩個數字相加等於target,就回傳兩個數字的位置([i, j])。
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
for (let i = 0; i < nums.length; i++) {
for (let j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] === target) {
return [i, j]
}
}
}
};
https://leetcode.com/problems/two-sum/
文章同步更新於medium